///#begin en
//
//  Copyright (c) 2016 MyCamCloud. All rights reserved.
//
///#end

#import "HKSServerClient.h"
@class HKSDevicePushItem;

///#begin zh-cn
/**
 *  @class      HKSServerClient (Device)
 *  @brief      服务器设备相关操作的接口，服务器设备相关功能都由此类进行提供
 */
///#end
///#begin en
/**
 *  @class      HKSServerClient (Device)
 *  @brief      Server device function interface class,server device functions performed by such offers
 */
///#end
@interface HKSServerClient (Device)


///#begin zh-cn
/**
*  @brief       获取该用户下面的所有设备数据
*
*  @param[out]  aDevices[NSMutableArray->TreeListItem] 输出该设备节点下的所有设备数据
*  @return      [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
*  @since       v1.0.0.0
*/
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)treeListDataAtIndex:(NSMutableArray *)aDevices;

///#begin zh-cn
/**
 *  @brief       获取该用户下面的所有设备数据
 *
 *  @param[in]   index[int]          获取设备的节点索引，0开始。
 *  @param[out]  aDevices[NSMutableArray->TreeListItem] 输出该设备节点下的所有设备数据
 *  @return      [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since       v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)treeListDataAtIndex:(int)index
                deviceList:(NSMutableArray *)aDevices IOS_VERSION_DEPRECATED("该接口已过时，请使用treeListDataAtIndex:(NSMutableArray *)aDevices");

///#begin zh-cn
/**
 *  @brief       获取该用户下面的所有设备数据
 *
 *  @param[in]   index[int]          获取设备的节点索引，0开始。
 *  @param[out]  aDevices[NSMutableArray->TreeListItem] 输出该设备节点下的所有设备数据
 *  @param[in]   theLevel[int]       目录级别，0开始。
 *  @return      [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since       v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)treeListDataAtIndex:(int)index
                deviceList:(NSMutableArray *)aDevices
                     level:(int)theLevel IOS_VERSION_DEPRECATED("该接口已过时，请使用treeListDataAtIndex:(NSMutableArray *)aDevices");

///#begin zh-cn
/**
 *  @brief       获取该用户下面的所有设备数据
 *
 *  @param[in]   index[int]          获取设备的节点索引，0开始。
 *  @param[out]  aDevices[NSMutableArray->TreeListItem] 输出该设备节点下的所有设备数据
 *  @param[in]   theLevel[int]       目录级别，0开始。
 *  @param[in]   isConnParam[BOOL]   是否获取每个设备的连接参数
 *  @return      [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since       v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)treeListDataAtIndex:(int)index
                deviceList:(NSMutableArray *)aDevices
                     level:(int)theLevel
               isConnParam:(BOOL)isConnParam IOS_VERSION_DEPRECATED("该接口已过时，请使用treeListDataAtIndex:(NSMutableArray *)aDevices");


///#begin zh-cn
/**
 *  @brief      在该用户下面进行设备添加
 *
 *  @param[in]  item[TreeListItem] 添加的设备对象,设备别名不能超过28个字符
 *  @return     [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since      v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)addServerDevInfo:(TreeListItem *)item;
- (HKS_NPC_D_MPI_MON_ERROR)addServerDevInfo:(TreeListItem *)item outArray:(NSMutableArray *)outDevices IOS_VERSION_DEPRECATED("use - addServerDevInfo instead.");

///#begin zh-cn
/**
 *  @brief      删除设备、目录或镜头
 *
 *  @param[in]  item[TreeListItem] 删除的设备、目录或镜头对象
 *  @param[in]  theDevices[NSMutableArray->TreeListItem] 如果删除的对象为目录或设备，他下级节点就删除将通过该数组里面查找，然后进行删除。
 *  @return     [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since      v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)deleteServerDevInfo:(TreeListItem *)item
                   devices:(NSMutableArray *)theDevices IOS_VERSION_DEPRECATED("use - deleteServerDevInfo instead.");
- (HKS_NPC_D_MPI_MON_ERROR)deleteServerDevInfo:(TreeListItem *)item;

///#begin zh-cn
/**
 *  @brief      修改服务器上面设备对象数据
 *
 *  @param[in]  item[TreeListItem] 修改的设备对象
 *  @return     [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since      v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)modifyServerDevInfo:(TreeListItem *)item;

///#begin zh-cn
/**
 *  @brief      修改服务器上面设备名称
 *
 *  @param[in]  item[TreeListItem] 修改的设备对象
 *  @param[in]  newName[NSString] 新名称
 *  @return     [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since      v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)modifyServerDevOrNodeName:(TreeListItem *)item newName:(NSString *)newName;

/**
 *  @brief      修改服务器上面设备连接参数(umid、ip、prot、userid、pwd、channel、stream)
 *
 *  @param[in]  item[TreeListItem] 修改的设备对象
 *  @return     [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since      v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)modifyServerDevConnParam:(TreeListItem *)item;

/**
 *  @brief          查询设备连接参数(iVendorId、umid、ip、prot、userid、pwd、channel、stream)
 *
 *  @param[in|out]  item[TreeListItem] 查询的设备对象
 *  @return         [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since          v1.0.0.0
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)queryDevNodeInfo:(TreeListItem *)item;


/**
 *  @brief          设置直连设备检测时间间隔，缺省值：30秒
 *
 *  @param[in]      aSecond[int] 间隔时间，范围：5-3600秒
 *  @return         [int]返回状态,请参考HKS_NPC_D_MPI_MON_ERROR_*定义
 *  @since          v2.5.6.1
 */
///#end
///#begin en
///#end
- (HKS_NPC_D_MPI_MON_ERROR)setCheckDevStateIntervalTime:(int)aSecond;
@end
